<?php
	/**
	 * Arquivo: relatorio.inc
	 * @package Default
	 * @sub-package RELATORIO
	 * @page-level 1
	 */
	/**
	 * Classe de Relatórios
	 * @package Default
	 * @return void
	 */
class RELATORIO extends BANCOS
		{
		/**
		 * Identificação do usuário
		 * @access private
		 * @var integer
		 */
		private $id_user;
		/**
		 * Nível de Acesso do usuário
		 * @access private
		 * @var integer
		 */
		private $nivel;
		/**
		 * Níveis de Acesso
		 * @access private
		 * @var integer[]
		 */
		private $niveis;
		/**
		 * Acesso a Classe FORMATAR
		 * @access private
		 * @var FORMATAR
		 */
		private $forma;
		/**
		 * Prazo para aviso do sistema
		 * @access private
		 * @var integer
		 */
		private $aviso;
		/**
		 * Data Atual do sistema
		 * @access private
		 * @var date
		 */
		private $hoje;
		
		/**
		 * Construtor da Classe RELATORIO
		 * @param integer $id_user Identificação do usuário
		 * @param integer $nivel Nível de acesso ao sistema do usuário
		 *
		 * @return void
		 */
		public function __construct($id_user, $nivel)
			{
			$this->id_user = substr($id_user,2,strlen($id_user));
			$this->nivel = substr($nivel,2,strlen($nivel));
			$this->niveis = array("Administrador","Escola","Cliente");
			$this->forma = new FORMATAR();
			parent::__construct();
			$this->exec_query("select validade from configuracao");
			$this->aviso = $this->retorno[1][0][0];
			$this->hoje = date("Y-m-d");
			}
		/**
		 * Destrutor da Classe RELATORIO
		 *
		 * @return void
		 */
		public function __destruct()
			{
			}
		/**
		 * Método que gera o menu interno do sistema
		 *
		 * @return void
		 */
		public function MenuInterno()
			{
			echo ("<ul>\n");
			echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('relatorio/conteudo.php?subid=1',escrever,'conteudo_interno','msg');\">Alertas</a></li>\n");
			echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('relatorio/conteudo.php?subid=2',escrever,'conteudo_interno','msg');\">Programas</a></li>\n");
			echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('relatorio/conteudo.php?subid=3',escrever,'conteudo_interno','msg');\">Treinamentos</a></li>\n");
			echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('relatorio/conteudo.php?subid=4',escrever,'conteudo_interno','msg');\">Treinamentos/ASO</a></li>\n");
			echo ("</ul>\n");
			}
		/**
		 * Carrega os alertas gerais do sistema
		 *
		 * @return void
		 */
		public function alertas()
			{
			echo ("<center>Alertas Gerais</center>\n");
			echo ("<label>Programas</label>\n<br/>");
			$sql = "select entidade.razao, programas.descricao, programa_entidade.data_validade, (date(programa_entidade.data_validade) - date('".$this->hoje."')) as prazo ";
			$sql .= "from cadastro.entidade inner join programa.programa_entidade on entidade.id_ent=programa_entidade.id_entidade ";
			$sql .= "inner join cadastro.programas on programas.id_programa=programa_entidade.id_programa ";
			$sql .= "where programa_entidade.status and (date(programa_entidade.data_validade) - date('".$this->hoje."')) < programas.aviso order by prazo";
			$this->exec_query($sql);
			if ($this->num_registros > 0)
				{
				echo ("<table summary=\"\" border=\"1\">\n");
				echo ("<tr>\n");
				echo ("<th>Empresa</th>\n<th>Programa</th>\n<th>Data Validade</th>\n<th>Prazo</th>\n");
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$data_prog = $this->retorno[1][$i];
					echo ("<tr>\n");
					echo ("<td>".$data_prog[0]."</td>\n");
					echo ("<td>".$data_prog[1]."</td>\n");
					echo ("<td>".$this->forma->data_conv($data_prog[2])."</td>\n");
					echo ("<td>".$data_prog[3]."</td>\n");
					echo ("</tr>\n");
					}
				echo ("</tr>\n");
				echo ("</table>\n");
				}
			else
				{
				echo ("Não há Programas em Alerta!<br/>");
				}
			echo ("<label>Treinamentos</label>\n<br/>");
			$sql = "select funcionario.nome, treinamento.descricao, trein_func.data_validade, (date(trein_func.data_validade) - date('".$this->hoje."')) as prazo, entidade.razao ";
			$sql .= "from cadastro.funcionario inner join treinamento.trein_func on funcionario.id_fun=trein_func.id_funcionario ";
			$sql .= "inner join cadastro.treinamento on treinamento.id_treinamento=trein_func.id_treinamento ";
			$sql .= "inner join entidade.emp_func on emp_func.id_funcionario=funcionario.id_fun ";
			$sql .= "inner join cadastro.entidade on emp_func.id_entidade=entidade.id_ent "; 
			$sql .= "where trein_func.status and (date(trein_func.data_validade) - date('".$this->hoje."')) < ".$this->aviso." group by funcionario.nome, treinamento.descricao, trein_func.data_validade, prazo, entidade.razao order by prazo";
			$this->exec_query($sql);
			if ($this->num_registros > 0)
				{
				echo ("<table summary=\"\" border=\"1\">\n");
				echo ("<tr>\n");
				echo ("<th>Funcionário</th>\n<th>Empresa</th>\n<th>Treinamento</th>\n<th>Data Validade</th>\n<th>Prazo</th>\n");
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$data_trein = $this->retorno[1][$i];
					echo ("<tr>\n");
					echo ("<td>".$data_trein[0]."</td>\n");
					echo ("<td>".$data_trein[4]."</td>\n");
					echo ("<td>".$data_trein[1]."</td>\n");
					echo ("<td>".$this->forma->data_conv($data_trein[2])."</td>\n");
					echo ("<td>".$data_trein[3]."</td>\n");
					echo ("</tr>\n");
					}
				echo ("</tr>\n");
				echo ("</table>\n");
				}
			else
				{
				echo ("Não há Treinamentos em Alerta!<br/>");
				}
			echo ("<label>Treinamentos/ASO</label>\n<br/>");
			$sql = "select entidade.razao, funcionario.nome, tp_aso.descricao, aso_func.data_validade, (date(aso_func.data_validade) - date('".date('Y-m-d')."')) as aviso from cadastro.entidade inner join treinamento.aso_func on entidade.id_ent=aso_func.id_entidade inner join cadastro.funcionario on funcionario.id_fun=aso_func.id_funcionario inner join cadastro.tp_aso on tp_aso.id=aso_func.id_aso where not renovado and (date(aso_func.data_validade) - date('".date('Y-m-d')."')) < ".$this->aviso." order by aviso";
			$this->exec_query($sql);
			if ($this->num_registros > 0)
				{
				echo ("<table summary=\"\"  border=\"1\">\n");
				echo ("<tr>");
				echo ("<th>Empresa</th><th>Funcionário</th><th>Tipo</th><th>Data Validade</th><th>Prazo</th>");
				echo ("</tr>");
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$prog_data = $this->retorno[1][$i];
					echo ("<tr>\n");
					echo ("<td>".$prog_data[0]."</td>");
					echo ("<td>".$prog_data[1]."</td>");
					echo ("<td>".$prog_data[2]."</td>");
					echo ("<td>".$this->forma->data_conv($prog_data[3])."</td>");
					echo ("<td>".$prog_data[4]."</td>");
					echo ("</tr>");
					}
				echo ("</table>\n");
				}
			else
				{
				echo ("Não há Treinamentos/ASO em Alerta!<br/>");
				}
			}
		/**
		 * Carrega os dados dos Programas
		 *
		 * @return void
		 */
		public function programas()
			{
			$selecionado = -1;
			$sql = "select * from cadastro.programas order by descricao";
			echo ("Selecione o Programa: <select id=\"programas_id\" name=\"programas_id\" onchange=\"javascript:pegar('relatorio/conteudo.php?subid=2&programas_id='+document.getElementById('programas_id').value,escrever,'conteudo_interno','msg');\" >\n");
			echo ("<option>---</option>\n");
			$this->exec_query($sql);
			if ($this->num_registros > 0)
				{
				$dd_t = $this->retorno[1];
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$dados = $this->retorno[1][$i];
					if ($_GET['programas_id'] == $dados[0])
						{
						$selecionado = $i;
						echo ("<option value=\"".$dados[0]."\" selected>".$dados[1]."</option>\n");
						}
					else 
						{
						echo ("<option value=\"".$dados[0]."\">".$dados[1]."</option>\n");
						}
					}
				}
			else 
				{
				echo ($this->msn_sistema);
				}
			echo ("</select>\n");
			if ($selecionado != -1)
				{
				$sql = "select entidade.razao, programa_entidade.data_validade, ((date(programa_entidade.data_validade)-date('".date('Y-m-d')."'))-".$dd_t[$selecionado][3].") as aviso from cadastro.entidade inner join programa.programa_entidade on entidade.id_ent=programa_entidade.id_entidade where programa_entidade.id_programa=".$dd_t[$selecionado][0]." order by aviso";
				//echo ($sql);
				$this->exec_query($sql);
				if ($this->num_registros > 0)
					{
					echo ("<table summary=\"\"  border=\"1\">\n");
					echo ("<tr>\n");
					echo ("<th>Empresa</th>\n<th>Validade</th>\n<th>Prazo</th>\n");					
					echo ("</tr>\n");
					for ($i=0; $i < $this->num_registros; $i++)
						{
						$dd = $this->retorno[1][$i];
						echo ("<tr>\n");
						echo ("<td>".$dd[0]."</td>\n");
						echo ("<td>".$this->forma->data_conv($dd[1])."</td>\n");
						echo ("<td>".$dd[2]."</td>\n");
						echo ("</tr>\n");
						}
					echo ("</table>\n");
					}
				}
			}
		/**
		 * Carrega os dados dos Treinamentos
		 *
		 * @return void
		 */
		public function treinamentos()
			{
			$selecionado = -1;
			$sql = "select * from cadastro.treinamento order by descricao";
			echo ("Selecione o Treinamento: <select id=\"trein_id\" name=\"trein_id\" onchange=\"javascript:pegar('relatorio/conteudo.php?subid=3&trein_id='+document.getElementById('trein_id').value,escrever,'conteudo_interno','msg');\">\n");
			echo ("<option>---</option>\n");
			$this->exec_query($sql);
			if ($this->num_registros > 0)
				{
				$dd_t = $this->retorno[1];
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$dados = $this->retorno[1][$i];
					if ($_GET['trein_id'] == $dados[0])
						{
						$selecionado = $i;
						echo ("<option value=\"".$dados[0]."\" selected>".$dados[1]."</option>\n");
						}
					else 
						{
						echo ("<option value=\"".$dados[0]."\">".$dados[1]."</option>\n");
						}
					}
				}
			else 
				{
				echo ($this->msn_sistema);
				}
			echo ("</select>\n");
			if ($selecionado != -1)
				{
				$sql = "select funcionario.nome, trein_func.data_validade, ((date(trein_func.data_validade)-date('".date('Y-m-d')."'))-".$this->aviso.") as aviso, entidade.razao from cadastro.funcionario inner join treinamento.trein_func on funcionario.id_fun=trein_func.id_funcionario ";
				$sql .= "inner join entidade.emp_func on emp_func.id_funcionario=funcionario.id_fun ";
				$sql .= "inner join cadastro.entidade on emp_func.id_entidade=entidade.id_ent "; 
				$sql .= "where trein_func.id_treinamento=".$dd_t[$selecionado][0]." group by funcionario.nome, trein_func.data_validade, aviso, entidade.razao  order by aviso";
				//echo ($sql);
				$this->exec_query($sql);
				if ($this->num_registros > 0)
					{
					echo ("<table summary=\"\"  border=\"1\">\n");
					echo ("<tr>\n");
					echo ("<th>Funcionário</th>\n<th>Empresa</th>\n<th>Validade</th>\n<th>Prazo</th>\n");					
					echo ("</tr>\n");
					for ($i=0; $i < $this->num_registros; $i++)
						{
						$dd = $this->retorno[1][$i];
						echo ("<tr>\n");
						echo ("<td>".$dd[0]."</td>\n");
						echo ("<td>".$dd[3]."</td>\n");
						echo ("<td>".$this->forma->data_conv($dd[1])."</td>\n");
						echo ("<td>".$dd[2]."</td>\n");
						echo ("</tr>\n");
						}
					echo ("</table>\n");
					}
				}
			}
		/**
		 * Carrega os dados dos ASOs
		 *
		 * @return void
		 */
		public function aso()
			{
			$selecionado = -1;
			$sql = "select entidade.id_ent, entidade.razao from cadastro.entidade inner join treinamento.aso_func on entidade.id_ent=aso_func.id_entidade group by entidade.id_ent, entidade.razao order by razao";
			echo ("Selecione a Empresa: <select id=\"emp_id\" name=\"emp_id\" onchange=\"javascript:pegar('relatorio/conteudo.php?subid=4&emp_id='+document.getElementById('emp_id').value,escrever,'conteudo_interno','msg');\" >\n");
			echo ("<option>---</option>\n");
			$this->exec_query($sql);
			if ($this->num_registros > 0)
				{
				$dd_t = $this->retorno[1];
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$dados = $this->retorno[1][$i];
					if ($_GET['emp_id'] == $dados[0])
						{
						$selecionado = $i;
						echo ("<option value=\"".$dados[0]."\" selected>".$dados[1]."</option>\n");
						}
					else 
						{
						echo ("<option value=\"".$dados[0]."\">".$dados[1]."</option>\n");
						}
					}
				}
			else 
				{
				echo ($this->msn_sistema);
				}
			echo ("</select>\n");
			if ($selecionado != -1)
				{
				$sql = "select funcionario.nome, tp_aso.descricao, aso_func.data_validade, (date(aso_func.data_validade) - date('".date('Y-m-d')."')) as aviso from cadastro.entidade inner join treinamento.aso_func on entidade.id_ent=aso_func.id_entidade inner join cadastro.funcionario on funcionario.id_fun=aso_func.id_funcionario inner join cadastro.tp_aso on tp_aso.id=aso_func.id_aso where not renovado and id_entidade=".$_GET['emp_id']." order by aviso";
				$this->exec_query($sql);
				if ($this->num_registros > 0)
					{
					echo ("<table summary=\"\"  border=\"1\">\n");
					echo ("<tr>");
					echo ("<th>Funcionário</th><th>Tipo</th><th>Data Validade</th><th>Prazo</th>");
					echo ("</tr>");
					for ($i=0; $i < $this->num_registros; $i++)
						{
						$prog_data = $this->retorno[1][$i];
						echo ("<tr>\n");
						echo ("<td>".$prog_data[0]."</td>");
						echo ("<td>".$prog_data[1]."</td>");
						echo ("<td>".$this->forma->data_conv($prog_data[2])."</td>");
						echo ("<td>".$prog_data[3]."</td>");
						echo ("</tr>");
						}
					echo ("</table>\n");
					}
				}
			}
		};//RELATORIO
?>